package com.sf.rbac.mapper;

import com.sf.rbac.domain.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RoleMapper {

    /**
     * 分页方法
     */
    List<Role> selectForList();

    /**
     * 根据id 删除数据
     *
     * @param id
     * @return
     */
    int delete(Long id);

    /**
     * 根据角色id 删除用户与角色的关系
     *
     * @param id
     */
    void deleteRoleAndEmpRelationByRId(Long id);

    /**
     * 根据角色id 删除角色与权限的关系
     *
     * @param id
     */
    void deleteRoleAndPermissionByRId(Long id);

    /**
     * 根据id 查询角色信息
     *
     * @param id
     * @return
     */
    Role get(Long id);

    /**
     * 查询所有角色
     *
     * @return
     */
    List<Role> listAll();

    /**
     * 根据员工id 查询角色集合
     *
     * @param id
     * @return
     */
    List<Role> queryRolesByEmpId(Long id);

    /**
     * 新增角色信息
     *
     * @param role
     */
    void insert(Role role);

    /**
     * 新增角色和权限之间的关系
     *
     * @param id
     * @param permissionId
     */
    void insertRoleAndPermissionRelation(@Param("roleId") Long id, @Param("permissionId") Long permissionId);

    /**
     * 编辑角色信息
     *
     * @param role
     */
    void update(Role role);
}
